package com.jiajia;

/**
 *
 * 栈上分配 ：
 *      实验一 ：
 *             不开启逃逸分析： -Xmx1G -Xms1G -XX:-DoEscapeAnalysis -XX:+PrintGCDetails
 *             开启逃逸分析：   -Xmx1G -Xms1G -XX:+DoEscapeAnalysis -XX:+PrintGCDetails
 *      实验二：
 *              减小堆空间大小 不开启逃逸分析 ：-Xmx256m -Xms256m  -XX:-DoEscapeAnalysis -XX:+PrintGCDetails
 *              减小堆空间大小 开启逃逸分析 ：-Xmx256m -Xms256m  -XX:+DoEscapeAnalysis -XX:+PrintGCDetails
 *
 *       查看： 时间 ，是否发生了GC
 *
 *
 * @author : zjj
 * @date : 2022/5/3 17:47
 */
public class Demo12StackAllocation {

    public static void main(String[] args) {
        long start = System.currentTimeMillis();

        for (int i = 0; i < 10000000; i++) {
            alloc();
        }
        // 查看执行时间
        long end = System.currentTimeMillis();
        System.out.println("花费的时间为： " + (end - start) + " ms");
        // 为了方便查看堆内存中对象个数，线程sleep
        try {
            Thread.sleep(1000000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
    }

    private static void alloc() {
        User user = new User();//未发生逃逸
    }

    static class User {

    }
}
